/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dvd.gestionnaires;

import dvd.modeles.*;
import java.util.ArrayList;
import java.util.Collection;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
@LocalBean
public class gestionnaireRole {

    @PersistenceContext
    private EntityManager em;
    @EJB
    private gestionnaireDvd gestionnaireDvd;
    @EJB
    private gestionnairePersonne gestionnairePersonne;

    public void creerRolesdeTest() {
        Film f = gestionnaireDvd.getFilmFromTitre("Mr. & Mrs. Smith");
        Personne p = gestionnairePersonne.getPersonneByName("Pitt", "Brad");
        Personne p2 = gestionnairePersonne.getPersonneByName("Jolie", "Angelina");
        creeRole(f, p, "John Smith");
        creeRole(f, p2, "Jane Smith");

        Film f2 = gestionnaireDvd.getFilmFromTitre("Titanic");
        Personne p3 = gestionnairePersonne.getPersonneByName("DiCaprio", "Leonardo");
        creeRole(f2, p3, "Jack Dawson");

        Film f3 = gestionnaireDvd.getFilmFromTitre("American Pie 4");
        Personne p4 = gestionnairePersonne.getPersonneByName("Hannigan", "Alyson");
        creeRole(f3, p4, "Michelle");

        Film f4 = gestionnaireDvd.getFilmFromTitre("Scream 4");
        Personne p5 = gestionnairePersonne.getPersonneByName("Cox Arquette", "Courtney");
        creeRole(f4, p5, "Gale Weathers");
        Personne p6 = gestionnairePersonne.getPersonneByName("Campbell", "Neve");
        creeRole(f4, p6, "Sidney Prescott");

        Film f5 = gestionnaireDvd.getFilmFromTitre("Harry Potter partie 2");
        Personne p7 = gestionnairePersonne.getPersonneByName("Radcliffe", "Daniel");
        Personne p8 = gestionnairePersonne.getPersonneByName("Watson", "Emma");
        Personne p9 = gestionnairePersonne.getPersonneByName("Grint", "Rupert");
        creeRole(f5, p7, "Harry Potter");
        creeRole(f5, p8, "Hermione Granger");
        creeRole(f5, p9, "Ron Weasley");

        Film f6 = gestionnaireDvd.getFilmFromTitre("Dark Shadows");
        Personne p10 = gestionnairePersonne.getPersonneByName("Depp", "Johnny");
        creeRole(f6, p10, "Barnabas Collins");        
    }

    public JouerRole creeRole(Film f, Personne p, String role) {
        JouerRole r = new JouerRole(f, p, role);
        gestionnaireDvd.addRole(f, r);
        gestionnairePersonne.addRole(p, r);
        em.persist(r);
        return r;
    }

    public JouerRole suppRole(Film f, Personne p) {
        Collection<JouerRole> liste = getRolesByFilm(f.getId());
        JouerRole rolesupp = null;
        for (JouerRole r : liste) {
            if (r.getPersonne().equals(p)) {
                rolesupp = r;
            }
        }
        if (rolesupp != null) {
            em.remove(rolesupp);
        }
        return rolesupp;

    }

    public Collection<JouerRole> getRolesByFilm(int film) {
        Film f = gestionnaireDvd.getFilmFromId(film);
        return f.getLesRoles();

    }
}